import unittest
import app
import utils

from api.ihrm_api import EmpAPI, LoginAPI


# 定义测试类，从 TestCase继承
class TestEmpManage(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        cls.emp_api = EmpAPI()
        cls.login_api = LoginAPI()

    def test_emp_curd(self):
        # 登录
        json_data = {'mobile': '13800000002', 'password': '123456'}
        resp = self.login_api.login(json_data)

        # 获取令牌
        token = 'Bearer ' + resp.json().get('data')
        # 将令牌 保存到全局变量 HEADERS 中！
        app.HEADERS['Authorization'] = token

        # 添加员工
        json_data = {"username": "小猪佩奇过大年",
                     "mobile": "13987650045",
                     "timeOfEntry": "2021-02-02",
                     "formOfEmployment": 1,
                     "workNumber": "1234",
                     "departmentName": "测试部",
                     "departmentId": "1063678149528784896",
                     "correctionTime": "2021-02-22T16:00:00.000Z"}
        resp = self.emp_api.add_emp(app.HEADERS, json_data)
        # 获取员工id
        emp_id = resp.json().get('data').get('id')
        # 将 员工id 保存到 全局变量
        app.EMP_ID = emp_id

        utils.common_assert(self, resp, 200, True, 10000, '操作成功')

        # 查询员工
        resp = self.emp_api.query_emp(app.EMP_ID, app.HEADERS)
        # print('按id查询结果为：', resp.json())
        utils.common_assert(self, resp, 200, True, 10000, '操作成功')

        # 修改员工
        json_data = {'username': '爱因斯坦'}
        resp = self.emp_api.modify_emp(app.EMP_ID, app.HEADERS, json_data)
        # print('按id修改员工结果为：', resp.json())
        utils.common_assert(self, resp, 200, True, 10000, '操作成功')

        # 删除员工
        resp = self.emp_api.del_emp(app.EMP_ID, app.HEADERS)
        # print('按id删除员工结果为：', resp.json())
        utils.common_assert(self, resp, 200, True, 10000, '操作成功')

        # 查询员工列表
        resp = self.emp_api.query_emp_list(app.HEADERS)
        # print('查询员工列表结果为：', resp.json())
        utils.common_assert(self, resp, 200, True, 10000, '操作成功')